In an SDN, separation of a data control layer from a data forwarding layer is implemented. A control device has a control function of the control layer, and a switching device has a forwarding function of the forwarding layer. The switching device may be connected to multiple control devices. Generally, two working modes exist between the control device and the switching device, an equal mode and a master/slave mode.
In the equal mode, multiple control devices on an equal footing have same control permission for one switching device, and the control devices are independent of each other. A control device A may deliver a flow entry to the switching device, and a control device B may also deliver a flow entry to the switching device.
The switching device receives a data packet, and searches a flow table for a flow entry including a match field that matches the data packet. If the found flow entry instructs the switching device to send the data packet to the control device, in the equal mode, the switching device needs to send the data packet to both the control device A and the control device B.
In some approaches, there are two processing solutions for the control device A and the control device B after the data packet is received. Solution 1: The control device A and the control device B generate a flow entry respectively, and deliver the flow entries to the switching device. Solution 2: The control device A negotiates with the control device B to determine that one of the two control devices processes the data packet and delivers a flow entry.
Regardless of either processing solution, a waste of control device resources and extra bandwidth consumption of a control channel may be caused, and consequently the control device may become a bottleneck of a network.